<?php
//on va vérifier et protégéer ce que l'on reçoit
$type = intval($_POST['type']);

//maintenant la requete
if (isset($_POST['mot']))
    $recherche = htmlspecialchars($_POST['mot']);
else
    $recherche = '';

//initialisation des variables
$Nbr_apercu = $nbr_fiche = 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Moteur de recherche sur l'ensemble des poissons de l'Aquarium d'Anzin</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="description" content="test" />
        <meta name="keywords" content="aquarium,anzin, aquariophile, aquariophilie, poisson, eau douce, eau mer, eau froide, neon, cardinalis, guppy, discus" />
        <link rel="stylesheet" href="css/style.css" />
        <link rel="icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />

        <!--[if lt IE 8]>
              <div style=' clear: both; text-align:center; position: relative;'>
                <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode">
                  <img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0" height="42" width="820" alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today." />
               </a>
             </div>
            <![endif]-->
        <!--[if lt IE 9]>
                        <script src="js/html5.js"></script>
                        <link rel="stylesheet" href="css/ie.css">
                <![endif]-->
    </head>
    <body id="page1">
        <!--==============================header=================================-->
        <?php
        require_once 'include/menu.php';
        require_once 'include/config.php';
        ?>
        <!--==============================content====================================-->
        <section id="content">
            <div class="container_24">
                <div class="wrapper border-vert">
                    <div class="grid_15">
                        <h2>Recherche de poissons</h2>
                        <p>
                            Vous trouverez ici l'ensemble des résultats de votre recherche. Vous pouvez cliquer sur les images ou le bouton fiche détaillée afin d'accéder à l'ensemble des informations sur l'animal concerné.
                        </p>
                    </div>
                    <div class="grid_8 prefix_50">
                        <h3>Autre recherche</h3>                        
                        <?php require_once 'include/search-poisson.php'; ?>
                    </div>
                </div>
                <div class="border-horiz"></div>
                <?php
                $time_start = microtime(true);
                $search=$recherche;
                // On supprime les caractères spéciaux
                $caracSpeciaux = array('€', '#', '+', '*', "'", '"', '²', '&', '~', '{',
                    '(', '[', '|', '`', '^', ')', '}', '=', '}', '^', '$', '£', '¤', '%', '*',
                    ';', ':', '/', '\\', '§', '>', '@', '§', '©', '<');
                $recherche = str_replace($caracSpeciaux, " ", trim($recherche));

                $stopWord = array('/\balors\b/', '/\bau\b/', '/\baucuns\b/', '/\baussi\b/', '/\bautre\b/', '/\bavant\b/', '/\bavec\b/', '/\bavoir\b/', '/\bbon\b/',
                    '/\bcar\b/', '/\bce\b/', '/\bcela\b/', '/\bces\b/', '/\bceux\b/', '/\bchaque\b/', '/\bci\b/', '/\bcomme\b/', '/\bcomment\b/', '/\bdans\b/', '/\bdes\b/', '/\bdu\b/', '/\bdedans\b/', '/\bdehors\b/', '/\bdepuis\b/', '/\bdeux\b/',
                    '/\bdevrait\b/', '/\bdoit\b/', '/\bdonc\b/', '/\bdos\b/', '/\bdroite\b/', '/\bdébut\b/', '/\belle\b/', '/\belles\b/', '/\b\ben\b\b/', '/\bencore\b/', '/\bessai\b/', '/\best\b/', '/\bet\b/', '/\beu\b/', '/\bfait\b/', '/\bfaites\b/',
                    '/\bfois\b/', '/\bfont\b/', '/\bforce\b/', '/\bhaut\b/', '/\bhors\b/', '/\bici\b/', '/\bil\b/', '/\bils\b/', '/\bje\b/', '/\bjuste\b/', '/\bla\b/', '/\ble\b/', '/\bles\b/', '/\bleur\b/', '/\blà\b/', '/\bma\b/', '/\bmaintenant\b/', '/\bmais\b/',
                    '/\bmes\b/', '/\bmine\b/', '/\bmoins\b/', '/\bmon\b/', '/\bmot\b/', '/\bmême\b/', '/\bni\b/', '/\bnommés\b/', '/\bnotre\b/', '/\bnous\b/', '/\bnouveaux\b/', '/\bou\b/', '/\boù\b/', '/\bpar\b/', '/\bparce\b/', '/\bparole\b/',
                    '/\bpas\b/', '/\bpersonnes\b/', '/\bpeut\b/', '/\bpeu\b/', '/\bpièce\b/', '/\bplupart\b/', '/\bpour\b/', '/\bpourquoi\b/', '/\bquand\b/', '/\bque\b/', '/\bquel\b/', '/\bquelle\b/', '/\bquelles\b/', '/\bquels\b/',
                    '/\bqui\b/', '/\bsa\b/', '/\bsans\b/', '/\bses\b/', '/\bseulement\b/', '/\bsi\b/', '/\bsien\b/', '/\bson\b/', '/\bsont\b/', '/\bsous\b/', '/\bsoyez\b/', '/\bsujet\b/', '/\bsur\b/', '/\bta\b/', '/\btandis\b/', '/\btellement\b/',
                    '/\btels\b/', '/\btes\b/', '/\bton\b/', '/\btous\b/', '/\btout\b/', '/\btrop\b/', '/\btrès\b/', '/\btu\b/', '/\bvaleur\b/', '/\bvoie\b/', '/\bvoient\b/', '/\bvont\b/', '/\bvotre\b/', '/\bvous\b/', '/\bvu\b/', '/\bça\b/', '/\bétaient\b/',
                    '/\bétat\b/', '/\bétions\b/', '/\bété\b/', '/\bêtre\b/');
                //echo 'Avant : ', $recherche, '<br />';
                //on supprime les stop word                
                $recherche = preg_replace($stopWord, '', trim($recherche));

                //On vérifie que la variable recherche comprend quelque chose
                if ($recherche == '') {
                    echo '<p>Merci de préciser un nom de poisson pour votre recherche.</p>';
                } else {
//                    echo 'Après : ', $recherche, '<br />';
                    //On sépare chaque mot pour les traiter indépendament
                    $tabSearch = explode(" ", trim($recherche));

//                echo 'Avant (spéciaux OK/stopWord OK : <pre>';
//                print_r($tabSearch);
//                echo '</pre>';
                   
                    //on supprimer toutes les entrées qui n'ont pas un nombre de lettre recquis
                    $tabSearch = array_filter($tabSearch, "filtre");
//                echo 'Final : ';
//                echo '<pre>';
//                print_r($tabSearch);
//                echo '</pre>';

                    $sql = 'SELECT `idpoisson` , `titre` , `nomlatin` FROM `poisson` ORDER BY `idpoisson` ASC';
                    $result = mysql_query($sql);
                    $nbr_fiche = mysql_num_rows($result);
                    $total = 0;
                    $seuil = 3;
                    $tab = array();
                    if ($nbr_fiche > 0) {
                        //On a récupérer tous les nom et nom latin de la base
                        while ($data = mysql_fetch_array($result)) {
                            //Pour chaque nom on regarde si il est en plusieur mot
                            $multimot = explode(" ", trim($data['titre']));
                            foreach ($multimot as $value) {
                                //Pour chaque mot de la recherche on vérifie si on est proche de la recherche
                                foreach ($tabSearch as $value2) {
                                    //On vérifie la prononciation
                                    if (soundex($value) == soundex($value2))
                                        $total += 5;
                                    $score = levenshtein(strtoupper($value), strtoupper($value2));
                                    if ($score < $seuil) {
                                        $total += 1;
                                        //si la recherche correspond exactement au titre, on affecte un bonus
                                        if ($score == 0)
                                            $total+=5;
                                    }
                                }
                            }
                            $multimot = explode(" ", trim($data['nomlatin']));
                            foreach ($multimot as $value) {
                                foreach ($tabSearch as $value2) {
                                    //On vérifie la prononciation
                                    if (soundex($value) == soundex($value2))
                                        $total += 5;
                                    $score = levenshtein(strtoupper($value), strtoupper($value2));
                                    if ($score < $seuil) {
                                        $total += 1;
                                        if ($score == 0)
                                            $total+=5;
                                    }
                                }
                            }

                            //on récupère uniquement les id avec des scores
                            if ($total >= 1)
                                $tab[$data['idpoisson']] = $total;
                            $total = 0;
                        }
                        // on tri le table en fonction des score les plus important
                        arsort($tab);
                    } else {
                        echo '<p>Aucune recherche possible actuellement.</p>';
                    }
//                    echo '<pre>';
//                    print_r($tab);
//                    echo '</pre>';
                    //dans le cas où l'on a résultat
                    if (count($tab) > 0) {
                        $sql = 'SELECT * FROM `poisson` WHERE `idpoisson` IN (';
                        foreach ($tab as $key => $value) {
                            $sql .=$key . ',';
                        }
                        //on supprime la dernière virgule qui ne sert à rien
                        $sql = substr($sql, 0, -1);
                        $sql .=')';
                        //dans le cas ou on recherche un type précis.
                        if (($type > 0) && ($type < 4)) {
                            $sql .= ' AND idtype=' . $type;
                        } else {
                            $sql .= 'AND idtype<4';
                        }

//                        echo $sql . '<br />';
                        $result = mysql_query($sql);
                        $nbr_fiche = mysql_num_rows($result);

                        //on insére en base pour avoir des stats sur le type de recherche
                        $sqlInsert='INSERT INTO `search` (`id_search`, `ip`, `txt_ini`, `txt`, `time`, `nbr_result`) 
                            VALUES (NULL, \''.get_ip().'\', \''.$search.'\', \''.$recherche.'\' , NOW(), \''.$nbr_fiche.'\');';                        
                        @mysql_query($sqlInsert);
                        if ($nbr_fiche > 0) {
                            $ligne = 0;
                            while ($data = mysql_fetch_array($result)) {
                                if ($ligne == 0) {
                                    echo '<div class="wrapper">';
                                }
                                echo '<div class = "grid_6" itemscope itemtype = "http://schema.org/CreativeWork">';
                                echo '<h4 style="text-align:center;" itemprop = "name">', stripslashes($data['titre']), '</h4>';
                                if (!empty($data['img1'])) {
                                    echo '<p class="pro_image_left"><span class="pro_image_style2"><a href="fiche-poisson-' . caractereValideUrl($data['titre']) . '-' . $data['idpoisson'] . '.html" title="' . $data['titre'] . '"  itemprop="url"><img src="', $data['img1'], '" alt="', $data['nomlatin'], '" ', $data['img1WH'], '></a></span></p>';
                                } elseif (!empty($data['img2'])) {
                                    echo '<p class="pro_image_left"><span class="pro_image_style2"><a href="fiche-poisson-' . caractereValideUrl($data['titre']) . '-' . $data['idpoisson'] . '.html" title="' . $data['titre'] . '"  itemprop="url"><img src="', $data['img2'], '" alt="', $data['nomlatin'], '" ', $data['img2WH'], '></a></span></p>';
                                } elseif (!empty($data['img3'])) {
                                    echo '<p class="pro_image_left"><span class="pro_image_style2"><a href="fiche-poisson-' . caractereValideUrl($data['titre']) . '-' . $data['idpoisson'] . '.html" title="' . $data['titre'] . '"  itemprop="url"><img src="', $data['img3'], '" alt="', $data['nomlatin'], '" ', $data['img3WH'], '></a></span></p>';
                                }
                                echo '<p  itemprop = "description">', tronque(stripslashes(strip_tags($data['description'])), 100), '</p>';
                                echo '<a href="fiche-poisson-' . caractereValideUrl($data['titre']) . '-' . $data['idpoisson'] . '.html" class="pro_btn pro_small" title="Fiche poisson : ' . $data['titre'] . '"  itemprop="url">Fiche complète</a>';
                                echo '</div>';
                                if ($ligne++ == 3) {
                                    $ligne = 0;
                                    echo '</div>';
                                }
                            }
                        } else {
                            echo '<div class="wrapper"><div class="grid_24"><p>Aucune fiche ne correspond à votre recherche, n\'hésitez pas à élargir votre recherche, ou tout simplement à nous contacter pour avoir plus d`\'informations.</p></div></div>';
                        }
                    } else {
                        echo '<div class="wrapper"><div class="grid_24"><p>Aucune fiche ne correspond à votre recherche, n\'hésitez pas à élargir votre recherche, ou tout simplement à nous contacter pour avoir plus d`\'informations.</p></div></div>';
                    }
                    $time_end = microtime(true);
                    $time = $time_end - $time_start;
                }
//                echo 'Temps de traitement ' . round($time, 5) . ' secondes<br />';
                ?>
            </div>
        </section>
<?php
require_once 'include/footer.php';
?>
    </body>
</html>